html, body, h1, h2, h3, h4, h5, h6, p, table, tr, td, ul, li, div, span, pre, code, a, em, blockquote, br, q, img, del, ins, input, label, iframe
{
	padding: 0;
	margin: 0;
}

svg
{
    width: 100%;
    height: 50%;
}

*
{
	font-family: sans-serif;
}

html
{
    background: url(/jpeg/fractal-flame) #f8f8f8 no-repeat;
    background-position: -5em 0;
    color: #000;
}

body
{
    margin: 14em 0 0 24em;
    background: #fff;
	padding: 3.5em 2em 2em 2em;
}

body:after
{
    display: block;
    content: " ";
    clear: both;
}

h1, h2, h3, h4, h5, h6
{
	font-family: Verdana, Helvetica, sans-serif;
	font-weight: normal;
	margin: 0.5em 0;
}

h1
{
    font-size: 2em;
    font-weight: bold;
    height: 3em;
    margin: -7.5em -1em 1em -1em;
    background: rgba(255,255,255,0.5);
    padding: 1em 1em 1.765em 1em;
}

h2
{
	font-size: 1.4em;
    margin: 2em 0 1.5em 0;
}

h3
{
	font-size: 1.3em;
    margin: 1em 0 1em 0;
}

h4
{
	font-size: 1.2em;
}

h5
{
	font-size: 1.1em;
}

h6
{
	font-size: 1.0em;
}

h1 + ul
{
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    display: block;
	padding: 10px 2em 10px 2em;
    height: 20px;
    z-Index: 1;
    background: rgba(255,255,255,0.8);
    text-align: right;
    font-size: 1em;
    font-weight: bold;
}

h1 + ul + ul
{
    display: block;
}

h1 + ul a
{
    text-decoration: none;
}

h1 + ul li,
h1 + ul + ul li
{
	display: inline-block;
    margin: 0;
	padding: 5px;
    width: auto;
}

a
{
	color: #222;
}

a:hover
{
	color: #999;
}

p, code
{
	margin: 0.5em 0;
}

blockquote
{
    width: auto;
    max-width: 60em;
    margin: 3.5em auto;
}

h2 ~ blockquote
{
    margin: 0.5em auto;
}

blockquote pre,
blockquote p
{
    width: auto;
    max-width: 56em;
    margin: 0.5em auto;
    padding: 0 1.5em;
}

blockquote pre:before,
blockquote p:before
{
    display: block;
    content: "\201c";
    font-size: 5em;
    color: #ccc;
    margin: 0 -0.5em -0.5em -0.5em;
}

blockquote pre:after,
blockquote p:after
{
    display: block;
    content: "\201d";
    font-size: 5em;
    color: #ccc;
    text-align: right;
    margin: 0 -0.5em;
}

blockquote[cite]:after
{
    display: block;
    content: attr(cite);
    max-width: 50em;
    color: #999;
    margin: -4em 0 0 7em;
    font-style: italic;
    text-align: right;
}

blockquote.twitter-tweet
{
    width: auto;
    max-width: none;
    padding: 1em;
    margin: 1em;
}

blockquote.twitter-tweet p
{
    width: auto;
    max-width: none;
    padding: 1em;
    margin: 0;
}

blockquote.twitter-tweet p:before,
blockquote.twitter-tweet p:after
{
    display: none;
}

pre
{
    margin: 2em 0;
}

pre code,
#example1, #example2, #example3, #example4, #example5
{
    display: block;
    padding: 0 0 0 1em;
}

pre code
{
    border-left: 2px solid blue;
    margin: 0 0 0 1em;
}

#example1, #example2, #example3, #example4, #example5
{
    border-left: 2px solid purple;
    margin: 1em;
}

address
{
    background: #eee;
    padding: 2em;
    font-style: normal;
    position: relative;
    margin: 2em -2em -2em -2em;
    width: auto;
    padding: 2em;
}

address ul li
{
    display: inline-block;
}

address a
{
    display: block;
    padding: 2em;
    margin: -2em;
    text-decoration: none;
}

address a:hover
{
    background: #333;
    color: #fff;
}

address span
{
    display: block;
    font-weight: bold;
    font-size: 1.2em;
    color: #999;
    margin: 0 0 0.5em 0;
}

address span span
{
    display: inline;
    font-size: 1em;
    color: #444;
    margin: 0;
    white-space: nowrap;
}

address a:hover span span
{
    color: #eee;
}

img
{
    max-width: 100%;
}

img.float-right
{
    float: right;
    margin: 2em;
}

div.figure
{
    display: block;
    position: absolute;
    background: rgba(255,255,255,0.8);
    width: 17em;
    padding: 2em 2em 2em 2em;
    margin: 2em 0 0 -26em;
}

div.figure img
{
    display: block;
    margin: 0 auto;
    border: 1em solid #fff;
}

div.figure h2
{
    margin: 0;
    font-size: 1.2em;
}

div.figure li a
{
    display: block;
    margin: -0.5em 0;
    padding: 1em;
    font-size: 1.2em;
    text-decoration: none;
    color: #eee;
}

div.figure li
{
    margin: 0;
    background: #444;
    background: rgba(0,0,0,0.4);
    border: 0.1em solid #777;
    text-align: center;
    padding: 0.5em 0;
    margin-top: 2em;
}

div.figure li + li
{
    background: none;
    border: none;
    text-align: left;
    margin-top: 0;
}

div.figure li a:hover
{
    color: #000;
}

div.figure li + li a:before
{
    content: "> ";
}

div.figure li + li a
{
    font-size: 1em;
    padding: 0;
    color: #222;
}

ul#subfeeds
{
    text-align: right;
    height: 2em;
    margin: -5.3em 0 5em 0;
    padding: 0;
}

ul#subfeeds li
{
    display: inline-block;
    padding: 1em 2em;
    margin: 0;
    background: #fff;
    background: rgba(255,255,255,0.8);
}

ul#subfeeds li a
{
    background: #eee;
    display: inline-block;
    padding: 1em 2em;
    margin: -1em -2em;
}

ul#subfeeds li a:hover
{
    background: #fff;
}

th
{
    text-align: right;
}

thead th
{
    text-align: center;
}

th, td
{
    padding: 0 0.3em;
    vertical-align: top;
}

ul li,
ol li
{
    margin: 0.5em 0.5em 0.5em 2em;
}

ol
{
    margin: 0.2em 0.2em 0.2em 1.5em;
    padding: 0;
}

div ul li,
table ul li
{
    display: block;
}

table ul li,
table ol li
{
    margin: 0;
}

table.proper thead th,
table.proper thead td
{
    background: #eee;
}

table.proper tbody tr th,
table.proper tbody tr td
{
    border-top: 1px solid black;
}

body#full
{
    vertical-align: top;
    margin: 14em 0 0 0;
}

body#full:after
{
    visibility: hidden;
    height: 0;
    display: block;
    content: " ";
    clear: both;
}

#feed
{
    display: block;
    margin: -3em 0 0 0;
    padding: 0;
    vertical-align: top;
}

#feed li
{
    vertical-align: top;
    display: inline-block;
    width: 46%;
    height: auto;
    margin: 1%;
    padding: 1%;
    line-height: 1.125em;
}

#feed li + li + li
{
    width: 21%;
}

#feed h2
{
    padding: 0.2em 3em;
    margin: 0.5em -2em;
    font-weight: bold;
    font-size: 1em;
    border-bottom: 1px solid #ccc;
    clear: both;
}

#feed li a
{
    display: block;
    position: relative;
    text-decoration: none;
    padding: 1em 1em 4em 1em;
    height: 100%;
    margin: -1em;
    overflow: hidden;
}

#feed li a:hover
{
    background: #eee;
    background: rgba(0,0,0,0.1);
}

#feed .large h2,
#feed .medium h2,
#feed .small h2
{
    display: block;
    font-size: 1.4em;
    background: none;
    padding: 0 0 0 1.5em;
    width: auto;
    margin: 0 0 2em 0;
    text-align: left;
    line-height: 1.25em;
    border: 0;
}

#feed .large h2 a:before,
#feed .medium h2 a:before,
#feed .small h2 a:before
{
    display: inline-block;
    content: " ";
    border: 1px solid #fff;
    height: 1.15em;
    width: 1.15em;
    margin: 0 0.25em -0.25em -1.5em;
    background: #a44;
}

#feed .medium h2 a:before
{
    background: #4a4;
}

#feed .small h2 a:before
{
    background: #44a;
}

#feed .large,
#feed .medium,
#feed .small
{
    display: inline-block;
    width: 46%;
    margin: 1%;
    padding: 1%;
    float: left;
}

#feed .small
{
    width: 21%;
    float: none;
}

#feed .large li,
#feed .medium li,
#feed .small li
{
    display: inline-block;
    height: auto;
    width: 10em;
    padding: 0.5em;
    margin: 0;
}

#feed .large a,
#feed .medium a,
#feed .small a
{
    display: inline;
    padding: 0;
    margin: 0;
}

#feed .large ul,
#feed .medium ul,
#feed .small ul
{
    margin: 0;
    padding: 0;
    text-align: right;
    height: auto;
}

#feed .large th, #feed .large td, #feed .large tr,
#feed .medium th, #feed .medium td, #feed .medium tr,
#feed .small th, #feed .small td, #feed .small tr
{
    display: inline-block;
}

#feed .large h2 + ul,
#feed .medium h2 + ul,
#feed .small h2 + ul
{
    display: block;
    margin: -2em 0 1em 0;
    padding: 0;
    font-weight: bold;
    text-align: left;
}

#feed .large h2 + ul li,
#feed .medium h2 + ul li,
#feed .small h2 + ul li
{
    margin: 0;
    padding: 0;
}

#feed .large h2 + ul li.published,
#feed .medium h2 + ul li.published,
#feed .small h2 + ul li.published,
#feed .large h2 + ul li.author,
#feed .medium h2 + ul li.author,
#feed .small h2 + ul li.author
{
    display: inline-block;
    width: 50%;
    min-width: 12em;
}

#feed .large h2 + ul li.published,
#feed .medium h2 + ul li.published,
#feed .small h2 + ul li.published
{
    text-align: left;
}

p#maths-note:before
{
    content: "Note: "
}

pre
{
    white-space: pre-wrap;
}

math[display=block]
{
    border-left: 0.2em solid #f0f;
    padding-left: 0.5em;
    margin-left: 1em;
    display: block;
}

ul#social
{
  display: block;
  padding: 0.5em 1em;
  margin: -4em -2em 0 -2em;
  text-align: right;
  height: 1em;
  overflow: hidden;
}
ul.social-grid
{
  display: block;
  padding: 2em 8em 0 0;
  margin: 0 0 0 -2em;
  overflow: visible;
}
ul#social:hover,
ul.social-grid:hover
{
  overflow: visible;
}
ul#social:hover li,
ul.social-grid:hover li
{
  position: relative;
}
ul#social li,
ul.social-grid li
{
  display: inline-block;
  margin: -1em 0 0 0;
  font-family: sans-serif;
  padding: 0.8em 1em 0.3em 1em;
  width: 2em;
  text-align: left;
  vertical-align: top;
  height: 1.9em;
}
ul.social-grid li
{
  margin: 0;
  width: 4em;
  padding-top: 0.3em;
  height: 1.3em;
}
ul#social li a:before,
ul.social-grid li a:before
{
  display: inline-block;
  width: 2em;
}
ul#social li a,
ul.social-grid li a
{
  display: inline-block;
  width: 2em;
  margin: -0.8em -1em -0.3em -1em;
  padding: 0.9em 0.5em 0.9em 1.5em;
  overflow: hidden;
  color: transparent;
  text-decoration: none;
}
ul#social li:hover,
ul.social-grid li:hover
{
  width: 10em;
}
ul#social li:hover a,
ul.social-grid li:hover a
{
  width: 10em;
  color: inherit;
}
li.twitter
{
  background: rgb(0,170,242);
  color: #fff;
}
li.twitter a:before
{
  color: #fff;
  content: "t";
}
li.linkedin
{
  background: rgb(0,128,182);
  color: #fff;
}
li.linkedin a:before
{
  color: #fff;
  content: "in";
}
li.facebook
{
  background: rgb(59,83,154);
  color: #fff;
}
li.facebook a:before
{
  color: #fff;
  content: "f";
}
li.xing
{
  background: rgb(0,103,106);
  color: rgb(168,209,0);
}
li.xing a:before
{
  color: rgb(168,209,0);
  content: "x";
}
li.googleplus
{
  background: rgb(210,22,0);
  color: #fff;
}
li.googleplus a:before
{
  color: #fff;
  content: "g+";
}
li.stumbleupon
{
  background: rgb(235,72,35);
  color: #fff;
}
li.stumbleupon a:before
{
  color: #fff;
  content: "su";
}
li.flattr
{
  background: rgb(125,178,73);
  color: #fff;
}
li.flattr a:before
{
  color: #fff;
  content: "fl";
}
li.email
{
  background: #080;
  color: #fff;
}
li.email a:before
{
  color: #fff;
  content: "@";
}
li.irc
{
  background: #050;
  color: #fff;
}
li.irc a:before
{
  color: #fff;
  content: "I";
}
li.phone
{
  background: #000;
  color: #fff;
}
li.phone a:before
{
  color: #fff;
  content: ":/";
}
li.skype
{
  background: #00aff0;
  color: #fff;
}
li.skype a:before
{
  color: #fff;
  content: "s";
}
ul.social-grid li.bio
{
  padding: 1em 2em;
  display: block;
  width: auto;
  height: auto;
}
ul.social-grid li.image
{
  padding: 0;
  margin: 0;
  display: block;
  float: right;
  width: auto;
  position: absolute;
  top: 0;
  right: 0
}
ul.social-grid li.image img
{
  width: 10em;
}
address span
{
  display: block;
  background: #f9f9f9;
  padding: 0.5em 2em;
  margin: -2em;
  font-size: inherit;
  color: #000;
  font-weight: bold;
}
ul#hardcopies
{
  clear: both;
  margin: 3em -2em;
  width: auto;
  text-align: right;
  padding: 0 1em;
}
ul#hardcopies li
{
  display: inline-block;
  margin: 0;
  padding: 0.5em 1em;
  color: #999;
  white-space: nowrap;
}
ul#hardcopies li a
{
  margin: -0.5em -1em;
  padding: 0.5em 1em;
  text-decoration: none;
}
ul#hardcopies li a:hover
{
  background: #aaa;
  color: #fff;
}
ul#meta
{
  margin: 0 -2em 2em -2em;
  background: #f4f4f4;
}
ul#meta li
{
  display: block;
  padding: 0.5em 1em;
  text-align: right;
  margin: 0;
}
ul#meta li.previous a:after,
ul#meta li.next a:after,
ul#meta li.draft:after,
ul#meta li#published:after,
ul#meta li#collection a:after,
ul#social:after
{
  display: inline-block;
  width: 5em;
  content: "previous";
  font-weight: bold;
  text-align: left;
  padding: 0 1em;
  vertical-align: top;
}
ul#meta li.next a:after
{
  content: "next";
}
ul#meta li.draft:after
{
  content: "draft";
}
ul#meta li#published:after
{
  content: "published";
}
ul#meta li#collection a:after
{
  content: "collection";
}
ul#social:after
{
  content: "social";
  display: none;
}
ul#meta li.previous a,
ul#meta li.next a,
ul#meta li#collection a
{
  display: block;
  padding: 0.5em 1em;
  margin: -0.5em -1em;
  text-decoration: none;
}
ul#meta li.previous a:hover,
ul#meta li.next a:hover,
ul#meta li#collection a:hover
{
  background: #444;
  color: #fff;
}
ul#meta li#published
{
  margin-left: -10em;
  visibility: hidden;
  margin: 0 0 -2.3em 0;
}
ul#meta li#published .year,
ul#meta li#published .month,
ul#meta li#published .day
{
  position: absolute;
  width: 12em;
  left: 0;
  top: 6.8em;
  margin: 0;
  padding: 0;
  color: #fff;
  text-align: center;
  vertical-align: bottom;
  font-weight: bold;
  font-size: 1em;
  visibility: visible;
  color: #000;
}
ul#meta li#published .year
{
  background: rgba(255,255,255,0.8);
  padding: 3.5em 1.5em 2.5em 7.5em;
}
ul#meta li#published .month
{
  font-size: 2em;
  width: 7.5em;
  top: 4em;
  left: 2.9em;
}
ul#meta li#published .day
{
  font-size: 7em;
  top: 0.9em;
  width: 1.4em;
}
p.credit, p.last-modified
{
  margin-top: 4em;
}
p.last-modified + p.credit
{
  margin-top: 0.5em;
}
div#disqus_thread
{
  margin-top: 2em;
}
a#comments
{
  display: block;
  background: #eee;
  padding: 2em;
  margin: 2em -2em -2em -2em;
  text-decoration: none;
}
a#comments:hover
{
  background: #aaa;
  color: #fff;
}
p.follow
{
  margin-top: 4em;
  font-style: italic;
}
p.follow iframe
{
  border: 0;
}
p.last-modified + p.follow
{
  margin-top: 0.5em;
}
p.follow + p.credit
{
  margin-top: 0.5em;
}
@media (max-width: 70em)
{
    body, body#full
    {
        margin: 14em 0 0 0;
        border: 0;
        box-shadow: none;
    }

    h1
    {
        padding-left: 5em;
    }

    h1 + ul
    {
        padding: 10px 1.5em;
        overflow: hidden;
    }

    div.figure
    {
        position: relative;
        margin: 2.5em -2em;
        width: auto;
        left: 0;
        padding: 2em;
    }

    div.auto-abstract
    {
        display: none;
    }

    ul#meta li#published
    {
        margin-left: -2em;
    }

    ul#meta li#published .year
    {
        width: 8em;
        left: 1em;
        top: 0em;
        padding: 8.5em 0 9em 0;
    }

    ul#meta li#published .month
    {
        font-size: 1.3em;
        left: 0.2em;
        top: 5.2em;
    }

    ul#meta li#published .day
    {
        font-size: 3.5em;
        left: 0.3em;
        top: 0.8em;
        width: 2.3em;
    }

    #feed .large,
    #feed .medium
    {
        width: 46%;
    }
}

@media (max-width: 50em)
{
    #feed .large,
    #feed .medium,
    #feed .small,
    {
        width: 46%;
    }
}

@media (max-width: 42.9em)
{
    #feed .large,
    #feed .medium,
    #feed .small,
    {
        float: none;
        display: block;
        width: auto;
        margin: 1em;
        padding: 1em;
    }
}
